// packageA/mycomponent/goodsComponent/plugin/groupWork/groupWork.js
var yz_pay = require("../../../../../../mycomponent/yz_pay/yz_pay");
const app = getApp();
Component({
  behaviors: [yz_pay],
  /**
   * 组件的属性列表
   */
  properties: {
    gooddatas: {
      type: Object,
    }
  },
  observers: {},
  lifetimes: {
    // 生命周期函数，可以为函数，或一个在methods段中定义的方法名
    attached: function () {
      this.initDisabled();
    }
  },
  /**
   * 组件的初始数据
   */
  data: {
    goods: {},
    showSpecs: false,
    groupLevel: [],
    groupModel: null,
    groupWork_disabled: false, //当前发起拼团按钮是否禁用

    Payshow: false,
    btnData: [], //支付方式集合,
    payKeyboardShow: false, //键盘显示
    isPlaying: false //防止重复支付
  },

  /**
   * 组件的方法列表
   */
  methods: {
    initDisabled() {
      //是否禁用，活动未开始、已结束
      let status = false;
      if (!this.data.gooddatas.end_time || this.data.gooddatas.end_time == "") {
        //不限时
        status = false;
      } else if (app.getTimeDifference(this.data.gooddatas.end_time) == 0) {
        //已结束
        status = true;
      } else if (app.getTimeDifference(this.data.gooddatas.start_time) > 0) {
        //未开始
        status = true;
      }
      this.setData({
        groupWork_disabled: status,
        showSpecs: false,
        Payshow: false,
        payKeyboardShow: false,
        isPlaying: false
      });
    },
    selectGroup(e) {
      const {
        item
      } = e.currentTarget.dataset;
      if (item.status != 2) {
        let text = item.status == 3 ? "已结束" : "未开始";
        wx.showToast({
          title: text,
          duration: 1000,
          icon: "none",
        });
        return;
      }
      this.setData({
        groupModel: item.id,
      });
      this.selectComponent('#yzSpecs').setData({
        popPrice: item.min_price,
        popDescription: `${item.person}人团`
      });
    },
    rewardPayCancelBtn() {
      this.setData({
        Payshow: false
      });
    },
    showSpecsPop() {
      if (Number(this.data.gooddatas.surplus) === 0) {
        //没次数
        wx.showToast({
          title: '开团次数已用完，请升级等级',
          duration: 1000,
          icon: "none",
        });
        return;
      }
      let goods = {};
      goods['id'] = this.data.gooddatas.goods_id;
      goods['thumb'] = this.data.gooddatas.goods_info.thumb;
      goods['stock'] = this.data.gooddatas.stock;
      goods['price'] = this.data.gooddatas.min_price + ' 起';
      this.setData({
        goods: goods,
        showSpecs: true
      });
    },
    //获取支付类型参数
    getPayData() {
      if (!this.data.groupModel) {
        wx.showToast({
          title: '请选择开团层级！',
          duration: 1000,
          icon: "none",
        });
        return;
      }
      app._postNetWork({
        url: app.getNetAddresss("plugin.group-work.frontend.modules.alliance.controllers.pay.button"),
        success: (resdata) => {
          var res = resdata.data;
          if (res.result == 1) {
            this.setData({
              btnData: res.data.buttons,
              showSpecs: false,
              Payshow: true
            });
          } else {
            wx.showToast({
              title: res.msg,
              duration: 1000,
              icon: "none",
            });
          }
        },
      });
    },
    async payPost(e) {
      if (this.data.isPlaying) {
        return;
      }
      let _data = e.currentTarget.dataset.info;
      let json = {
        pay_type: _data.value,
        spec_id: this.data.groupModel,
        alliance_id: 0,
        client_type: 2
      };

      if (_data.need_password) {
        let pass = await this.getPayKeyboardPassword(); //开启支付密码验证
        json.password = pass;
      }
      this.data.isPlaying = true;
      app._getNetWork({
        url: app.getNetAddresss('plugin.group-work.frontend.modules.alliance.controllers.apply.index'),
        data: json,
        success: (res) => {
          this.data.isPlaying = false;
          if (res.data.result === 1) {
            this.handleOtherPay(_data, _data.value, res.data, "groupWork");
            this.setData({
              Payshow: false,
              popupSpecs: false,
              showSpecs: false
            });
          } else {
            wx.showModal({
              title: '提示',
              showCancel: false,
              content: res.data.msg,
              success(res) {}
            });
            console.error(res);
          }
        },
        fail: (res) => {
          console.error(res);
        }
      });
    },
  }
});